package quq.missq.utils;

import android.graphics.Bitmap;
import android.os.AsyncTask;

import java.util.Map;


public class BItmapUploadAsyncTask extends AsyncTask<Integer, Integer, String> {

	private Map<String, String> params;
	private Map<String, String> mPaths;
	private Map<String, Bitmap> files;
	private String url;
	private HttpBItmapRequest.HttpRequestListener listener;
	public static final double MAX_LEANTH = 400 * 1024;



	public BItmapUploadAsyncTask(Map<String, String> params,
								 Map<String, Bitmap> files, Map<String, String> mPaths, String url, HttpBItmapRequest.HttpRequestListener listener) {
		this.params = params;
		this.files = files;
		this.url = url;
		this.listener = listener;
		this.mPaths = mPaths;

	}

	/**
	 * 这里的Integer参数对应AsyncTask中的第一个参数 这里的String返回值对应AsyncTask的第三个参数
	 * 该方法并不运行在UI线程当中，主要用于异步操作，所有在该方法中不能对UI当中的空间进行设置和修改
	 * 但是可以调用publishProgress方法触发onProgressUpdate对UI进行操作
	 */
	@Override
	protected String doInBackground(Integer... param) {
	//	int i =0;

		try {

			String json = HttpBItmapRequest.post(url, params, files, mPaths);

			return json;
		} catch (Exception e) {
			e.printStackTrace();

			return "fail";
		}
	}

	/**
	 * 这里的String参数对应AsyncTask中的第三个参数（也就是接收doInBackground的返回值）
	 * 在doInBackground方法执行结束之后在运行，并且运行在UI线程当中 可以对UI空间进行设置 无效的用户
	 */
	@Override
	protected void onPostExecute(String result) {
		if ("fail".equals(result)) {
			listener.httpError();
		} else {
			listener.httpSuccess(result);
		}
	}

	// 该方法运行在UI线程当中,并且运行在UI线程当中 可以对UI空间进行设置
	@Override
	protected void onPreExecute() {
	}

	/**
	 * 这里的Intege参数对应AsyncTask中的第二个参数
	 * 在doInBackground方法当中，，每次调用publishProgress方法都会触发onProgressUpdate执行
	 * onProgressUpdate是在UI线程中执行，所有可以对UI空间进行操作
	 */
	@Override
	protected void onProgressUpdate(Integer... values) {
	}


}
